1. Expanded MMC1 (Dragon Warrior III)


Attention! $3c000-3ffff is a _duplicate_ copy @ $7c000-7ffff

; Flips 256K PRG banks
; note: P2/P3 is always fixed to last 16KB (3c000-3ffff OR 7c000-7ffff)
;
; $A000-BFFF is MMC1 Register 1

[03C668] $c668: 8D FF BF    STA $BFFF                     A:10 X:00 Y:00 S:FB P0=00000 P1=02000 P2=3c000 P3=3e000
[03C66B] $c66b: 4A          LSR                           A:10 X:00 Y:00 S:FB P0=00000 P1=02000 P2=3c000 P3=3e000
[03C66C] $c66c: 8D FF BF    STA $BFFF                     A:08 X:00 Y:00 S:FB P0=00000 P1=02000 P2=3c000 P3=3e000
[03C66F] $c66f: 4A          LSR                           A:08 X:00 Y:00 S:FB P0=00000 P1=02000 P2=3c000 P3=3e000
[03C670] $c670: 8D FF BF    STA $BFFF                     A:04 X:00 Y:00 S:FB P0=00000 P1=02000 P2=3c000 P3=3e000
[03C673] $c673: 4A          LSR                           A:04 X:00 Y:00 S:FB P0=00000 P1=02000 P2=3c000 P3=3e000
[03C674] $c674: 8D FF BF    STA $BFFF                     A:02 X:00 Y:00 S:FB P0=00000 P1=02000 P2=3c000 P3=3e000
[03C677] $c677: 4A          LSR                           A:02 X:00 Y:00 S:FB P0=00000 P1=02000 P2=3c000 P3=3e000
[03C678] $c678: 8D FF BF    STA $BFFF                     A:01 X:00 Y:00 S:FB P0=00000 P1=02000 P2=3c000 P3=3e000
[07C67B] $c67b: 60          RTS                           A:01 X:00 Y:00 S:FB P0=40000 P1=42000 P2=7c000 P3=7e000

..

; Changes P0/P1 paging location
;
; $E000-FFFF is MMC1 Register 3

[07FFAC] $ffac: 8D FF FF    STA $FFFF                     A:01 X:00 Y:00 S:FD P0=40000 P1=42000 P2=7c000 P3=7e000
[07FFAF] $ffaf: 4A          LSR                           A:01 X:00 Y:00 S:FD P0=40000 P1=42000 P2=7c000 P3=7e000
[07FFB0] $ffb0: 8D FF FF    STA $FFFF                     A:00 X:00 Y:00 S:FD P0=40000 P1=42000 P2=7c000 P3=7e000
[07FFB3] $ffb3: 4A          LSR                           A:00 X:00 Y:00 S:FD P0=40000 P1=42000 P2=7c000 P3=7e000
[07FFB4] $ffb4: 8D FF FF    STA $FFFF                     A:00 X:00 Y:00 S:FD P0=40000 P1=42000 P2=7c000 P3=7e000
[07FFB7] $ffb7: 4A          LSR                           A:00 X:00 Y:00 S:FD P0=40000 P1=42000 P2=7c000 P3=7e000
[07FFB8] $ffb8: 8D FF FF    STA $FFFF                     A:00 X:00 Y:00 S:FD P0=40000 P1=42000 P2=7c000 P3=7e000
[07FFBB] $ffbb: 4A          LSR                           A:00 X:00 Y:00 S:FD P0=40000 P1=42000 P2=7c000 P3=7e000
[07FFBC] $ffbc: 8D FF FF    STA $FFFF                     A:00 X:00 Y:00 S:FD P0=40000 P1=42000 P2=7c000 P3=7e000
[07FFBF] $ffbf: AD C8 06    LDA $06C8    @ $06C8 = $00    A:00 X:00 Y:00 S:FD P0=44000 P1=46000 P2=7c000 P3=7e000

..

; Move to lower 256KB PRG banks
;
; $A000-BFFF is MMC1 Register 1

[07FFC2] $ffc2: 8D FF BF    STA $BFFF                     A:00 X:00 Y:00 S:FD P0=44000 P1=46000 P2=7c000 P3=7e000
[07FFC5] $ffc5: 4A          LSR                           A:00 X:00 Y:00 S:FD P0=44000 P1=46000 P2=7c000 P3=7e000
[07FFC6] $ffc6: 8D FF BF    STA $BFFF                     A:00 X:00 Y:00 S:FD P0=44000 P1=46000 P2=7c000 P3=7e000
[07FFC9] $ffc9: 4A          LSR                           A:00 X:00 Y:00 S:FD P0=44000 P1=46000 P2=7c000 P3=7e000
[07FFCA] $ffca: 8D FF BF    STA $BFFF                     A:00 X:00 Y:00 S:FD P0=44000 P1=46000 P2=7c000 P3=7e000
[07FFCD] $ffcd: 4A          LSR                           A:00 X:00 Y:00 S:FD P0=44000 P1=46000 P2=7c000 P3=7e000
[07FFCE] $ffce: 8D FF BF    STA $BFFF                     A:00 X:00 Y:00 S:FD P0=44000 P1=46000 P2=7c000 P3=7e000
[07FFD1] $ffd1: 4A          LSR                           A:00 X:00 Y:00 S:FD P0=44000 P1=46000 P2=7c000 P3=7e000
[07FFD2] $ffd2: 8D FF BF    STA $BFFF                     A:00 X:00 Y:00 S:FD P0=44000 P1=46000 P2=7c000 P3=7e000
[03FFD5] $ffd5: EA          NOP                           A:00 X:00 Y:00 S:FD P0=04000 P1=06000 P2=3c000 P3=3e000
